import type { RouteRecordRaw } from 'vue-router'

export interface NavItem {
  path: string
  name: string
  title: string
}

export function generateNavItems(mdRoutes: RouteRecordRaw[]): NavItem[] {
  const navItems: NavItem[] = []

  // 添加固定的首页和关于页
  navItems.push(
    { path: '/', name: 'home', title: '首页' },
    { path: '/about', name: 'about', title: '关于' },
  )

  // 用于存储已处理的目录，避免重复
  const processedDirs = new Set<string>()

  mdRoutes.forEach((route) => {
    if (typeof route.path !== 'string' || route.path === '/') return

    // 跳过编码路径的路由（名称以-encoded结尾）
    if (route.name && typeof route.name === 'string' && route.name.endsWith('-encoded')) return

    const segs = route.path.split('/').filter(Boolean)

    // 过滤掉不以 docs 开头的路径
    if (segs[0] !== 'docs') return

    // 如果路径少于2段（如 /docs/animal-world），则处理为导航项
    if (segs.length >= 2) {
      const dir = segs[1] // 第二段作为目录名，如 'animal-world'

      // 避免重复添加
      if (processedDirs.has(dir)) return

      processedDirs.add(dir)

      navItems.push({
        path: `/docs/${dir}`,
        name: `docs-${dir}`,
        title: dir,
      })
    }
  })

  return navItems
}
